home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Taifun
/
Taifun 048 (1988-02-15)(Ossowski, Stefan)(DE)(PD).zip
/
Taifun 048 (1988-02-15)(Ossowski, Stefan)(DE)(PD).adf
/
Mandel
/
source
/
mandel.h
< prev
next >
Wrap
C/C++ Source or Header
|
1988-01-23
|
6KB
|
193 lines
/* :ts=4
* Common DEFINEs and external declarations for the
* Mandelbrot Construction Set...
*/
#define MYFRONTPEN 2 /* Black */
/* Menus */
#define CPRMENU 0 /* Copyright Menu */
#define PRJMENU 1 /* Poject Menu */
#define OPTMENU 2 /* Option Menu */
#define FUNMENU 3 /* Functions Menu */
/* Menu items */
#define PRJNEW 0 /* Project Menu: New */
#define PRJOPN 1 /* Open */
#define PRJSVE 2 /* Save */
#define PRJSVA 3 /* Save As */
#define PRJQUI 4 /* Quit */
#define OPTCOL 0 /* Option Menu: Colors */
#define OPTRES 1 /* Resolution */
#define OPTPAR 2 /* Parameters */
#define FUN1 0 /* Functions Menu: Z^2-C */
#define FUN2 1 /* ZC1MinZ */
#define FUN3 2 /* Z3PlusZCMin1MinC */
/* subitems */
#define PNABS 0 /* Project New: Absolute */
#define PNENL 1 /* Enlarge */
#define PNRED 2 /* Reduce */
#define PNSHF 3 /* Shift */
#define OCSEL 0 /* Opt Color: Select */
#define OCMOD 1 /* Modulo */
#define OCRAN 2 /* Ranges */
#define OCPAL 3 /* Palette */
#define ORNRM 0 /* Opt Resl: Normal */
#define OR12 1 /* 1/2 */
#define OR13 2 /* 1/3 */
#define OR14 3 /* 1/4 */
#define ORFIL 4 /* Fill In */
#define ORHI 5 /* HiRes */
#define ORILC 6 /* Interlace */
#define ORBCK 7 /* Borderless */
#define POSGADGETID 10 /* For Positive Gadget */
#define NEGGADGETID 11 /* For Negative Gadget */
#define FNAME_SIZE 32L /* Filename size */
#define DNAME_SIZE 66L /* Directoryname size */
#define MAXDEPTH 512 /* Maximum maximum depth */
#define BMDEPTH 5 /* Depth of our bitmap */
#define MAXCOL (1<<BMDEPTH) /* Maximum number of colors */
#define NOTFRAMING 0 /* We are not framing */
#define NOPOINT 1 /* We have no points of a frame */
#define POINT1 2 /* We have 1 point of a frame */
#define CENTERFRAMING 3 /* We have a center and are busy with a corner */
#define FLASHING 4 /* We are still flashing the frame */
#define MODULO 0 /* Pen assignment to the depths */
#define RANGES 1
#define SELECT 2
#define MAND ((ULONG)'M'<<24 | (ULONG)'A'<<16 | 'N'<<8 | 'D')
/* Let's try to make `goto' a little more structured... */
#define skipto goto
#define backto goto
/* Type definitions */
typedef short bool;
struct BitMapHeader
{
UWORD w, h;
UWORD x, y;
UBYTE nPlanes;
UBYTE masking;
UBYTE compression;
UBYTE pad1;
UWORD transparentColor;
UBYTE xAspect, yAspect;
WORD pageWidth, pageHeight;
};
/*ILBM_info is the structure read_iff returns, and is hopefully all
you need to deal with out of the iff reader routines below*/
struct ILBM_info
{
struct BitMapHeader header;
UBYTE cmap[MAXCOL*3]; /*say hey aztec don't like odd length structures*/
struct BitMap bitmap;
};
struct Mand
{
ULONG MandID; /* 'MAND' */
LONG Size; /* sizeof(struct Mand) */
WORD MaxDepth; /* Maximum iteration count */
WORD RangeWidth;
BYTE RainDist; /* From the palette Rainbow mode */
BYTE RainRMax; /* From the palette Rainbow mode */
BYTE RainGMax; /* From the palette Rainbow mode */
BYTE RainBMax; /* From the palette Rainbow mode */
BYTE Coords[4 * 14]; /* Ascii representation */
};
struct BorderInfo
{
BYTE SizeX, SizeY;
BYTE MoveX, MoveY;
};
/* Some Macros */
#define MENU(menu,item,subitem)\
(LONG)(SHIFTMENU(menu)|SHIFTITEM(item)|SHIFTSUB(subitem))
/* External declarations */
#include <functions.h>
extern long GetScreenData();
/*
extern struct Screen *OpenScreen();
extern struct Window *OpenWindow();
extern struct IntuiMessage *GetMsg();
extern struct Library *OpenLibrary();
extern struct MenuItem *ItemAddress();
extern long AutoRequest(), DisplayAlert(), Request(), MoveLayer(),
SizeLayer();
extern void SetAPen(), WritePixel(), WindowLimits(), EndRequest();
*/
/* Forward POINTER declarations */
extern struct Screen *MandelScreen;
extern struct Window *MainWindow;
extern struct IntuiMessage *message;
extern void (*WritePixelDepth)();
/* Forward STRUCT declarations */
extern struct Menu MandelMenu[];
extern struct NewScreen MandelNScreen;
extern struct NewWindow MainNWindow;
extern struct TextAttr Topaz60, Topaz80;
extern struct IntuiText PositiveText, NegativeText;
extern struct Gadget PositiveGadget, NegativeGadget;
extern struct BorderInfo borderinfo;
/* Forward `SIMPLE' declarations */
extern int NumColors, MaxDepth, PixelStep, RangeWidth;
extern unsigned PenTableMode;
extern unsigned short FrameX1, FrameX2, FrameY1, FrameY2;
extern short MouseStatus;
extern bool finished, StillDrawing, Saved, NameValid;
extern double LeftEdge, RightEdge, TopEdge, BottomEdge, CXStep, CYStep;
extern UBYTE PenTable[MAXDEPTH];
extern SHORT RainbowDistance, RainbowRMax, RainbowGMax, RainbowBMax;
/* Forward FUNCTION declarations */
extern bool InitDisplay(), Sure(), CleanupDisplay(), InterpretMAND(),
DoBorderless();
extern int WaitMyRequest(), write_iff();
extern float Ratio();
extern char *get_fname();
extern struct ILBM_info *read_iff();
extern struct Window *MyRequest();
extern void MyExit(), GotMenu(), UndoBorderless(), CprMenu(), PrjMenu(),
EdtMenu(), OptMenu(), FunMenu(), UnImpl(), DrawPicture(),
EndMyRequest(), CloseWindowSafely(), get_ea_cmap(),
put_ea_cmap(), free_planes(), RectDraw(), CrossDraw(),
CheckMouse(), InitPenTable(), StopFraming(),
EnableSystemGadgets(), DisableSystemGadgets(), Parameters(),
Palette(), MakeMAND(), StopDrawing(), CalcCSteps(),
ZQuadMinC(), ZC1MinZ(), Z3PlusZCMin1MinC(), SelectMenu(),
SuspendDrawing(), ResumeDrawing();